/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ejemploserializacion;

import java.io.Serializable;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

/**
 *
 * @author Jose Gabriel
 */
public class Persona implements Serializable{
    private String nombre;
    private String apellido;
    private Calendar fechaNac;
    private transient int edad;
    private String foto;

    public Persona(String nombre, String apellido, String fechaNacStr, String foto) {
        this.nombre = nombre;
        this.apellido = apellido;
        
        
        
        this.fechaNac = stringToCalendar(fechaNacStr);
        
        this.edad = calcularEdad(fechaNac); 
        this.foto = foto;
    }
    
    public final int calcularEdad(Calendar fechaNac){
        Calendar hoy = Calendar.getInstance();
        int age = hoy.get(Calendar.YEAR) - fechaNac.get(Calendar.YEAR);
        if(hoy.get(Calendar.DAY_OF_YEAR) < fechaNac.get(Calendar.DAY_OF_YEAR)){
            age--;
        }
        return age;
    }
    
    public final Calendar stringToCalendar ( String fechaNacStr ){
        DateFormat formatoFecha = new SimpleDateFormat("dd/MM/yyyy");
        Date fechaDate = new Date();
        Calendar fechaCalendar = new GregorianCalendar();
        
        try{
            fechaDate = formatoFecha.parse(fechaNacStr);
            fechaCalendar.setTime(fechaDate);
        }catch ( Exception e ){
            
        }        
        return fechaCalendar;
    }
}
